package my.graduation.service;

import com.baomidou.mybatisplus.extension.service.IService;
import my.graduation.dto.*;
import my.graduation.entity.Patient;
import my.graduation.result.Result;
import my.graduation.vo.PatientLoginVO;
import my.graduation.vo.PatientVO;

import java.util.List;

/**
 * @Author: RavenLyn
 * @Date: 2024-11-28
 */
public interface PatientService extends IService<Patient> {

    /**
     * 患者登录
     * @param dto
     * @return
     */
    Result<PatientLoginVO> login(PatientLoginDto dto);

    /**
     * 患者注册
     * @param dto
     * @return
     */
    Result register(PatientRegisterDto dto);

    /**
     * 患者忘记密码
     * @param dto
     * @return
     */
    Result forget(PatientForgetDto dto);

    /**
     * 患者登出
     * @param dto
     * @return
     */
    Result logout(PatientLogoutDto dto);

    Result<List<PatientVO>> getList();

    Result<List<PatientVO>> getListByCon(PatientInfoDto dto);

    Result add(PatientInfoDto dto);

    Result update(PatientInfoDto dto);

    Result delete(PatientInfoDto dto);

    Result<PatientVO> getPersonal(PatientInfoDto dto);

    Result repass(RepassDto dto);

    Result<Integer> getCount(PatientInfoDto dto);
}
